package com.korustar.autumnal.codemodel;

/**
 * Container for Autumnal itself...
 * 
 * @author amir
 *
 */
public class CodeModelDefaultContainer {

	private CodeModelContainerBuilder builder;
	private CodeModelSimpleOutputter outputter;
	
	public CodeModelDefaultContainer startContainer() {
		setBuilder(new CodeModelContainerBuilder());
		CodeModelBeanConstructionBuilder constructionBuilder= new CodeModelBeanConstructionBuilder();
		getBuilder().setConstructionBuilder(constructionBuilder);
		CodeModelParameterBuilder parameterBuilder= new CodeModelParameterBuilder();
		getBuilder().setParameterBuilder(parameterBuilder);
		constructionBuilder.setParameterBuilder(parameterBuilder);
		this.setOutputter(new CodeModelSimpleOutputter());
		return this;
	}

	public void setBuilder(CodeModelContainerBuilder builder) {
		this.builder = builder;
	}

	public CodeModelContainerBuilder getBuilder() {
		return builder;
	}

	public void setOutputter(CodeModelSimpleOutputter outputter) {
		this.outputter = outputter;
	}

	public CodeModelSimpleOutputter getOutputter() {
		return outputter;
	}
}
